package com.example.extra.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * <p>
 * 文件表
 * </p>
 *
 * @author system
 * @since 2025-01-17
 */
@Getter
@Setter
@ToString
@TableName("file")
@Schema(name = "File", description = "文件表")
public class File implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @Schema(description = "主键")
    @TableId(value = "file_id", type = IdType.ASSIGN_ID)
    private String fileId;

    /**
     * 创建时间
     */
    @Schema(description = "创建时间")
    private LocalDateTime createTime;

    /**
     * 创建用户ID
     */
    @Schema(description = "创建用户ID")
    private String createUserId;

    /**
     * 文件大小（字节）
     */
    @Schema(description = "文件大小（字节）")
    private Long fileSize;

    /**
     * 文件状态（0：正常，1：删除）
     */
    @Schema(description = "文件状态（0：正常，1：删除）")
    private Integer fileStatus;

    /**
     * 文件URL
     */
    @Schema(description = "文件URL")
    private String fileUrl;

    /**
     * 标识符
     */
    @Schema(description = "标识符")
    private String identifier;

    /**
     * 修改时间
     */
    @Schema(description = "修改时间")
    private LocalDateTime modifyTime;

    /**
     * 修改用户ID
     */
    @Schema(description = "修改用户ID")
    private String modifyUserId;

    /**
     * 存储类型
     */
    @Schema(description = "存储类型")
    private Integer storageType;

    /**
     * PDF URL
     */
    @Schema(description = "PDF URL")
    private String pdfUrl;

    /**
     * 缩略图URL
     */
    @Schema(description = "缩略图URL")
    private String thumbnailUrl;

    /**
     * 句柄
     */
    @Schema(description = "句柄")
    private Long handle;

    /**
     * 中科位置ID
     */
    @Schema(description = "中科位置ID")
    private String zkWzId;

    /**
     * MinIO存储桶
     */
    @Schema(description = "MinIO存储桶")
    private String minioBucketZk;
}
